#ifndef _SCENE_NODE_H
#define _SCENE_NODE_H

#include <string>
#include <vector>

class Entity;

class SceneNode
{
public:
	SceneNode(const std::string &name);
	~SceneNode();
	void addChild(SceneNode *node);
	SceneNode *getChild(const std::string &name);
	const SceneNode *getChild(const std::string &name) const;
	void removeChild(const std::string &name);
	Entity *getEntity(void);
	const Entity *getEntity(void) const;
	void setEntity(Entity *entity);
	const std::string &getName(void)const;
	void rename(const std::string &name);
private:
	Entity *mEntity;
	std::vector<SceneNode*> mChilds;
	std::string mName;
};

#endif	//_SCENE_NODE_H